import { defineStore } from 'pinia';

/* 
defineStore(store-id, Object | function)；
创建store 函数对象
store-id： 字符串类型  创建 store 实例 ID;
Object | function 第二个参数: 字面量对象 或 函数对象
字面量对象中 设置 store 实例的相关属性
state: 必须设置为一个函数对象  state 属性 返回值都会通过 reactive 构建响应式数据
getters: 是通过计算函数实现
actions: 建议使用 function函数形式， 函数体内可以访问 this
返回值: 获取 store 实例的函数对象
*/

const useMyStore = defineStore('my', {
  state: () => ({
    // price:'',
    arr: [{
      pid: 'w-001',
      ptime: '2022-01-10 22:00:00',
      paddr: '长沙 -- 北京',
      price: 1000
    },
    {
      pid: 'w-002',
      ptime: '2022-01-10 08:00:00',
      paddr: '长沙 -- 广州',
      price: 800
    },
    {
      pid: 'w-003',
      ptime: '2022-01-10 14:00:00',
      paddr: '长沙 -- 云南',
      price: 600
    }],
    copyArr:[{
      pid: 'w-001',
      ptime: '2022-01-10 22:00:00',
      paddr: '长沙 -- 北京',
      price: 1000
    },
    {
      pid: 'w-002',
      ptime: '2022-01-10 08:00:00',
      paddr: '长沙 -- 广州',
      price: 800
    },
    {
      pid: 'w-003',
      ptime: '2022-01-10 14:00:00',
      paddr: '长沙 -- 云南',
      price: 600
    }]
  }),
  getters: {
    getArr() {
      //定义函数对象时 可以在当前函数体内 通过 this 访问 state
      // 必须有返回值
      // console.log('getCount this=>', this);
      // console.log('getCount store=>', store);
      // console.log(price);
      return this.arr;
    },
  },

  actions: {
    getPrice(payload){
      // console.log(price);
      this.arr = this.copyArr
      console.log(payload);
      this.arr = this.arr.filter(item =>{if(item.price>payload.price) return true})
      // console.log(this.arr);
      if (!this.arr.length) {
        this.arr = '!!!暂无数据!!!'
      }
    }
  }
});

export default useMyStore;
